Internet Protocol (IP) was created in the 1960's by the United States Advanced Research Projects Agency (ARPA). The Agency's mission was to create instruments useful for military purposes, in particular communications and decentralized computer networks. The original idea was to create connections between military bases using a decentralized communications network with a mesh structure that would permit network function despite significant damage to the country's infrastructure sustained in a military attack. In the early years of its development, the Internet was used for data transfers, principally as file transfer protocol (FTP) sessions.
Use of the Internet spread from the military to the scientific and educational communities in the 1970's and 80's. Propagation of the Internet was, however, slow until the Worldwide Web (WWW) was created. The Worldwide Web was first intended to provide a convenient channel for the transfer of scientific information. However, it caught the attention of the commercial world and in the 1990's an explosive growth of the expansion of the Internet ensued. That explosive growth continues today. The current Internet uses an Internet Protocol referred to as IP version 4 (IPv4). IPv4 uses address fields that are 32 bits long. Although the potential number of IP addresses is 232, over 70% of those addresses have already been assigned and, if as expected the explosive growth of the Internet continues at its current pace, total exhaustion of IPv4 addresses will occur by 2006. Consequently, the Internet Engineering Task Force (IETF) has developed a new Internet standard referred to as IPv6 which uses 128-bit addressing. The address space in IPv6 is intended to accommodate connection of substantially any intelligent electronic device to the IP network. This includes mobile devices.
It is well known that IPv4 and IPv6 are not compatible because of the differences in address space. Consequently, IPv4 and IPv6 networks can only be interconnected by gateway nodes provisioned with both IPv4 and IPv6 network stacks. However, because of the current lack of available IPv4 address space, IPv6 networks are being deployed and connected to the IPv4 network. A need has therefore arisen for equipment and methods to permit IPv6 devices to communicate across the IPv4 network in order to enhance IPv6 device interconnectivity. This need has been partially met by an invention described in Applicant's U.S. patent application Ser. No. 10/195,396, now copending, which was filed on Jul. 16, 2002 and describes a method and apparatus for connecting IPv6 devices through an IPv4 network using a tunnel setup protocol, the specification of which is incorporated herein by reference.
While Applicant's invention for providing IPv6 connectivity over an IPv4 network using a tunnel setup protocol represents a significant advance, it is not adapted to accommodate connectivity across all network configurations found in the IPv4 network. One significant problem remains to be addressed. The problem is associated with network address translation (NAT). NAT is used as a an alternative to having a global IPv4 address for each device having access to the Internet. When a local area network (LAN) is connected to the Internet, NAT is generally used at the gateway to the Internet so that each computer in the LAN does not require a globally unique IPv4 address. This permits a private addressing scheme to be used in the LAN, because all traffic to and from the Internet goes through a single external host, which is generally a router.
NAT is frequently built into routers and firewalls. As used in this document, the word “router” means any router, firewall or other gateway configured to relay packets in a data packet network. The routers receive each packet from the internal private network and modify the IP header to include the global IP address of the router in the originating address field, before the packet is transmitted into the Internet. The router stores the internal IP address of the originating node, destination IP address and port number in the NAT state table. When a request is returned to the same port from the destination IP address, the NAT matches the internal IP address that originated the request, and then modifies the IP header to insert the internal originating address as the destination address for the request.
NAT has proved useful in helping to keep IPv4 address available until the conversion to IPv6 is completed. However, as will be understood by those skilled in the art, an IPv6-in-IPv4 tunnel cannot be readily set up through a NAT router, even using the tunnel setup protocol described in applicant's co-pending patent application referenced above.
Proposals for NAT traversal do exist, however. For example, Internet Draft <draft-ietf-ngtrans-shipworm-08.txt>, C. Huitema, (Microsoft) dated Sep. 17, 2002, entitled “Teredo: Tunneling IPv6 over UDP through NAT” proposes a service that enables nodes located behind one, or several, IPv4 NAT(s) to obtain IPv6 connectivity by tunneling packets over User Datagram Protocol (UDP). The service is called the “Teredo” service. Running the service requires the assistance of “Teredo servers” and “Teredo relays”. The Teredo servers are stateless, and only have to manage a small fraction of the traffic between Teredo clients. The Teredo relays act as IPv6 routers between the Teredo service and the “native” IPv6 Internet. This represents the first attempt to have NAT traversal for IPv6. However, Teredo does not accomodate any negotiation of parameters (IPv6 prefixes, domain name system (DNS), router peering, etc.), does not handle the optimization of encapsulation, and uses open relays that expose users to important security issues.
Consequently, there exists a need for a method and apparatus for automating and simplifying the establishment of IPv6-in-IPv4 tunnels to enable tunnel setup through a NAT router until the conversion to IPv6 is completed.